import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class VentanaServidor extends JFrame {

	private ControladorEventos controlador;
	
	private JTextArea txtArea;
	private JMenuBar mnuBar;
	private JMenu mnuArchivo;
	private JMenuItem mnuIniciar, mnuDetener, mnuFinalizar;
	private JLabel lblMensaje;
	
	private VentanaServidor (){
		controlador = new ControladorEventos();
		configurarMenu();
		configurarPantalla();
	}
	
	public static void main(String[] args) {
		new VentanaServidor();
	}
	
	private void configurarMenu() {
		
		JMenuBar mnuBar = new JMenuBar();
		setJMenuBar(mnuBar);

		JMenu mnuArchivo = new JMenu("Archivo");
		mnuBar.add(mnuArchivo);

		mnuIniciar = new JMenuItem("Iniciar Servicio");
		mnuIniciar.addActionListener(new IniciarEvent());
		mnuArchivo.add(mnuIniciar);
		
		mnuDetener = new JMenuItem("Detener Robocop");
		mnuDetener.addActionListener(new DetenerEvent());
		mnuDetener.setEnabled(false);
		mnuArchivo.add(mnuDetener);		
		
		mnuFinalizar = new JMenuItem("Finalizar");
		mnuFinalizar.addActionListener(new FinalizarEvent());
		mnuArchivo.add(new JSeparator());
		mnuArchivo.add(mnuFinalizar);		
	}
	
	private void configurarPantalla() {
		
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		this.txtArea = new JTextArea();
		this.lblMensaje = new JLabel("Mensaje");
		
		this.txtArea.setMinimumSize(new Dimension(350,200));
		this.setResizable(false);
		this.setTitle("Servidor");
		
		java.awt.Container panel = this.getContentPane();
		panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
		panel.add(lblMensaje);
		panel.add(txtArea);

		this.setSize(350, 250);
		//this.setLocationRelativeTo(null);
		this.setVisible(true);
		
		
	}
	
	class IniciarEvent implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			controlador.iniciarServidor();
			mnuIniciar.setEnabled(false);
			mnuDetener.setEnabled(true);
		}
	}
	
	class DetenerEvent implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			controlador.detenerServidor();
			mnuIniciar.setEnabled(true);
			mnuDetener.setEnabled(false);
		}
	}
	
	class FinalizarEvent implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			System.exit(0);
		}
	}
}
